package code;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import Swing.JPrincipal;
import java.io.IOException;
import java.util.*;

/**
 *
 * @author Catarina
 */
public class Main {
   /*
    public static void menuMedicao() throws IOException, ClassNotFoundException {

        System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
        System.out.println("Escolha uma das seguintes opções para medição de tempos: \n");
        System.out.println("1.Carregar base de dados (Text Stream):                               \n");   
        System.out.println("2.Carregar relações de amizade (Text Stream):                         \n");
        System.out.println("3.Inserir registo de novo utilizador :                   \n");
        System.out.println("4.Procurar utilizador :                                  \n"); 
        System.out.println("5.Inserir pedido de amizade num utilizador :             \n");
        System.out.println("6.Percorrer (visitar) a estrutura e imprimir os dados dos utilizadores (Text Stream):\n");
        System.out.println("7.Carregar base de dados (Object Stream):                \n");
        System.err.println("8.Carregar relações de amizade (Object Stream):                         \n");
        System.out.println("9.Percorrer (visitar) a estrutura e imprimir os dados dos utilizadores (ObjectStream) :\n");
        System.out.println("10.Ir menu: \n");
            Scanner input = new Scanner(System.in);
          int opcao = input.nextInt();
            switch(opcao){

                case 1: Global.redeTotal = MedicaoTempos.tempoUtilizador(); menuSair(); break;
                case 2: MedicaoTempos.tempoAmizades(Global.redeTotal); menuSair(); break;
                case 3: MedicaoTempos.tempoInserirUser(Global.redeTotal); menuSair(); break;
                case 4: MedicaoTempos.tempoProcuraUser(Global.redeTotal); menuSair(); break;
                case 5: MedicaoTempos.tempoAdicionarPedido(Global.redeTotal); menuSair(); break;
                case 6: MedicaoTempos.tempoImprimirRede(Global.redeTotal); menuSair(); break;
                case 7: Global.redeTotal = MedicaoTempos.tempoUtilizadorObjStream(); menuSair(); break;
                case 8: MedicaoTempos.tempoAmizadesObjStream(Global.redeTotal); menuSair(); break;
                case 9: MedicaoTempos.tempoImprimirRedeObjStream(Global.redeTotal); menuSair(); break;
                case 10: menu(); break;
                default: System.out.println("Insira uma opção válida\n"); menuMedicao(); break;
         }
            return;

    }
    
     public static void menu() throws IOException, ClassNotFoundException {

        System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
        System.out.println("Escolha uma das seguintes opções: \n");
        System.out.println("1.Carregar base de dados (Text Stream): \n");  
        System.out.println("2.Carregar base de dados (Object Stream): \n");
        System.out.println("3.Carregar relações de amizade (Text Stream): \n");
        System.out.println("4.Carregar relações de amizade (Object Stream): \n");
        System.out.println("5.Efectuar login: \n");
        System.out.println("6.Inserir registo de novo utilizador: \n");
        System.out.println("7.Procurar utilizador: \n"); 
        System.out.println("8.Inserir pedido de amizade num utilizador: \n");
        System.out.println("9.Manipular pedidos de amizade: \n");
        System.out.println("10.Apagar utilizador: \n");
        System.out.println("11.Visualizar amigos de um utilizador: \n");
        System.out.println("12.Percorrer a estrutura e imprimir os dados dos utilizadores (Text Stream): \n");
        System.out.println("13.Percorrer a estrutura e imprimir os dados dos utilizadores (Object Stream): \n");
        System.out.println("14.Menu de medição de tempos: \n");
        
          Scanner input = new Scanner(System.in);
          int opcao = input.nextInt();
            switch(opcao){

                case 1: IO.importaBDusers(); menuSair2(); break;
                case 2: IO.importaBDusersObjStream(); menuSair2(); break;
                case 3: IO.importaBDamigos(Global.redeTotal); menuSair2(); break;
                case 4: IO.importaBDamigosObjStream(Global.redeTotal); menuSair2(); break; 
                case 5: IO.loginUser(); menuSair2(); break;
                case 6: IO.registaUser(Global.redeTotal); menuSair2(); break;
                case 7: IO.procuraUser(Global.redeTotal); menuSair2(); break;
                case 8: IO.adicionarPedido(Global.redeTotal); menuSair2(); break;
                case 9: IO.manipularPedidos(Global.redeTotal); menuSair2(); break;
                case 10: IO.apagarUser(Global.redeTotal); menuSair2(); break;
                case 11: IO.visualizarAmigos(Global.redeTotal); menuSair2(); break;
                case 12: Global.redeTotal.toStringFich(); menuSair2(); break;
                case 13: Global.redeTotal.toStringFichObjStream(); menuSair2(); break;
                case 14: menuMedicao(); menuSair2(); break;
                default: System.out.println("Insira uma opção válida\n"); break;
            }
            menu();
            return;
    }

    public static void menuSair() throws IOException, ClassNotFoundException {

        System.out.println("\n\n");
        System.out.println("**1.Voltar ao menu anterior \n");
        System.out.println("**2.Sair                  \n");
                 Scanner input = new Scanner(System.in);
           int opcao = input.nextInt();

                 switch (opcao){
                     case 1: menuMedicao(); break;
                     case 2: break;
                     default: System.out.println("Insira uma opção válida\n"); menuSair();break;
           }
                 return;
    }
    
    public static void menuSair2() throws IOException, ClassNotFoundException {

        System.out.println("\n\n");
        System.out.println("**1.Voltar ao menu anterior \n");
        System.out.println("**2.Sair                  \n");
                 Scanner input = new Scanner(System.in);
           int opcao = input.nextInt();

                 switch (opcao){
                     case 1: menu(); break;
                     case 2: break;
                     default: System.out.println("Insira uma opção válida\n"); menuSair2();break;
           }
                 return;
    }
    
       
    }*/
    
    
    public static void main(String[] args) throws IOException {
        IO.importaBDusers();
        //IO.importaBDamigos(null);
        //LerFicheiro.importFriends(file_friends, Global.redeTotal);

        TreeMap<String, User> users = Global.redeTotal.getUsers();

        JPrincipal j = new JPrincipal(users);
        j.setVisible(true);

        /*
        for(User u : users.values()){
        System.out.println(u.toString());
        }*/

    }
}

